Skip to content

fix empty provenance metadata for multi-platform builds - #3536

Merged
tonistiigi merged 1 commit into
docker:masterfrom
crazy-max:fix-provnance-metadata
Nov 25, 2025
Merged

tonistiigi merged 1 commit into
docker:masterfrom
crazy-max:fix-provnance-metadata

Conversation

@crazy-max

Copy link
Copy Markdown
Member

Minimal provenance for multi-platform builds are currently not set in the metadata output. We should first check ev.Record.Results is set instead of ev.Record.Result.

Before:

$ docker buildx b --platform linux/amd64,linux/arm64 --metadata-file metadata.json -<<<'from alpine'
#0 building with "default" instance using docker driver
...
#8 resolving provenance for metadata file
#8 DONE 0.0s

$ cat metadata.json 
{
  "buildx.build.ref": "default/default/lx4yc0y6363w40bnrtukr12v1",
  "containerimage.descriptor": {
    "mediaType": "application/vnd.oci.image.index.v1+json",
    "digest": "sha256:bcbe77faeb9f47ba3edb8a60257921eb6be41522b26aeb57b2361eeb4d7d3b14",
    "size": 1607
  },
  "containerimage.digest": "sha256:bcbe77faeb9f47ba3edb8a60257921eb6be41522b26aeb57b2361eeb4d7d3b14",
  "image.name": "moby-dangling@sha256:bcbe77faeb9f47ba3edb8a60257921eb6be41522b26aeb57b2361eeb4d7d3b14"
}

After:

$ docker buildx b --platform linux/amd64,linux/arm64 --metadata-file metadata.json -<<<'from alpine'
#0 building with "default" instance using docker driver
...
#8 resolving provenance for metadata file
#8 DONE 0.0s

$ cat metadata.json 
{
  "buildx.build.provenance/linux/amd64": {
    "builder": {
      "id": ""
    },
    "buildType": "https://mobyproject.org/buildkit@v1",
    "materials": [
      {
        "uri": "pkg:docker/alpine@latest?platform=linux%2Famd64",
        "digest": {
          "sha256": "4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1"
        }
      }
    ],
    "invocation": {
      "configSource": {
        "entryPoint": "Dockerfile"
      },
      "parameters": {
        "frontend": "dockerfile.v0",
        "args": {
          "dockerfilekey": "dockerfile"
        },
        "locals": [
          {
            "name": "context"
          },
          {
            "name": "dockerfile"
          }
        ]
      },
      "environment": {
        "platform": "linux/amd64"
      }
    }
  },
  "buildx.build.provenance/linux/arm64": {
    "builder": {
      "id": ""
    },
    "buildType": "https://mobyproject.org/buildkit@v1",
    "materials": [
      {
        "uri": "pkg:docker/alpine@latest?platform=linux%2Farm64",
        "digest": {
          "sha256": "4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1"
        }
      }
    ],
    "invocation": {
      "configSource": {
        "entryPoint": "Dockerfile"
      },
      "parameters": {
        "frontend": "dockerfile.v0",
        "args": {
          "dockerfilekey": "dockerfile"
        },
        "locals": [
          {
            "name": "context"
          },
          {
            "name": "dockerfile"
          }
        ]
      },
      "environment": {
        "platform": "linux/amd64"
      }
    }
  },
  "buildx.build.ref": "default/default/m5yq6a7jqtueumuy6el6ntmkh",
  "containerimage.descriptor": {
    "mediaType": "application/vnd.oci.image.index.v1+json",
    "digest": "sha256:3a23d5c73657d7ced2f9c9503006007050a333d43da3a9e16930a262c98590b0",
    "size": 1607
  },
  "containerimage.digest": "sha256:3a23d5c73657d7ced2f9c9503006007050a333d43da3a9e16930a262c98590b0",
  "image.name": "moby-dangling@sha256:3a23d5c73657d7ced2f9c9503006007050a333d43da3a9e16930a262c98590b0"
}

@crazy-max
crazy-max marked this pull request as ready for review November 25, 2025 10:08
@crazy-max crazy-max added this to the v0.31.0 milestone Nov 25, 2025
@crazy-max

Copy link
Copy Markdown
Member Author

tests failing on freebsd are not related, see #3537

@dvdksn dvdksn left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

@crazy-max
crazy-max force-pushed the fix-provnance-metadata branch from dbd02f8 to a337b66 Compare November 25, 2025 16:24
Comment thread build/provenance.go Outdated
return nil
})
} else if ev.Record.Results != nil {
if ev.Record.Results != nil {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe len(ev.Record.Results) better check?

Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
@crazy-max
crazy-max force-pushed the fix-provnance-metadata branch from a337b66 to 1b9791f Compare November 25, 2025 16:39
@crazy-max
crazy-max requested a review from tonistiigi November 25, 2025 16:40
@tonistiigi
tonistiigi merged commit e084a7f into docker:master Nov 25, 2025
138 checks passed
@crazy-max
crazy-max deleted the fix-provnance-metadata branch November 25, 2025 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants